package com.agile.springboot.service.impl;

import com.agile.springboot.dao.OptionMapper;
import com.agile.springboot.entity.Option;
import com.agile.springboot.service.OptionService;
import com.agile.springboot.utils.UUIDUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;

@Service
public class OptionServiceImpl implements OptionService {

    @Resource
    OptionMapper optionMapper;

    /**
     * 新增选项
     * @param option 选项实体
     * @return 返回值为1，则说明新增选项成功
     */
    @Override
    public int addOption(Option option) {
        option.setId(UUIDUtil.getOneUUID());
        return optionMapper.insert(option);
    }

    /**
     * 物理删除选项
     * @param option_id 选项id
     * @return 返回值为1，则说明物理删除选项成功
     */
    @Override
    public int pscDelOption(String option_id) {
        return optionMapper.pscDeleteById(option_id);
    }

    /**
     * 修改选项信息
     * @param option 选项实体
     * @return 返回值为1，则说明修改选项信息成功
     */
    @Override
    public int updateOption(Option option) {
        return optionMapper.updateById(option);
    }

    /**
     * 获取选项——根据选项id
     * @param option_id 选项id
     * @return Option实体
     */
    @Override
    public Option searchOptionById(String option_id) {
        QueryWrapper<Option> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(option_id!=null,"id", option_id);
        return optionMapper.selectOne(queryWrapper);
    }

    /**
     * 获取选项——根据问题id
     * @param question_id 问题id
     * @return List<Option> 选项列表
     */
    @Override
    public List<Option> SearchOptionByQuestionId(String question_id) {
        QueryWrapper<Option> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(question_id!=null,"question_id", question_id);
        return optionMapper.selectList(queryWrapper);
    }
}
